package com.ruoyi.manage.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 员工合同对象 emp_contract
 * 
 * @author cf
 * @date 2025-06-04
 */
public class EmpContract extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 合同ID */
    private Long empContractId;

    /** 员工ID（关联sys_staff.staff_id） */
    @Excel(name = "员工ID", readConverterExp = "关=联sys_staff.staff_id")
    private Long staffId;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractNo;

    /** 合同类型 */
    @Excel(name = "合同类型")
    private Integer contractType;

    /** 合同起始日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同起始日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 合同终止日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同终止日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 试用期天数 */
    @Excel(name = "试用期天数")
    private Long trialDays;

    /** 签订日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签订日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signDate;

    /** 合同状态 */
    @Excel(name = "合同状态")
    private Integer contractStatus;

    public void setEmpContractId(Long empContractId) 
    {
        this.empContractId = empContractId;
    }

    public Long getEmpContractId() 
    {
        return empContractId;
    }
    public void setStaffId(Long staffId) 
    {
        this.staffId = staffId;
    }

    public Long getStaffId() 
    {
        return staffId;
    }
    public void setContractNo(String contractNo) 
    {
        this.contractNo = contractNo;
    }

    public String getContractNo() 
    {
        return contractNo;
    }
    public void setContractType(Integer contractType) 
    {
        this.contractType = contractType;
    }

    public Integer getContractType() 
    {
        return contractType;
    }
    public void setStartDate(Date startDate) 
    {
        this.startDate = startDate;
    }

    public Date getStartDate() 
    {
        return startDate;
    }
    public void setEndDate(Date endDate) 
    {
        this.endDate = endDate;
    }

    public Date getEndDate() 
    {
        return endDate;
    }
    public void setTrialDays(Long trialDays) 
    {
        this.trialDays = trialDays;
    }

    public Long getTrialDays() 
    {
        return trialDays;
    }
    public void setSignDate(Date signDate) 
    {
        this.signDate = signDate;
    }

    public Date getSignDate() 
    {
        return signDate;
    }
    public void setContractStatus(Integer contractStatus) 
    {
        this.contractStatus = contractStatus;
    }

    public Integer getContractStatus() 
    {
        return contractStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("empContractId", getEmpContractId())
            .append("staffId", getStaffId())
            .append("contractNo", getContractNo())
            .append("contractType", getContractType())
            .append("startDate", getStartDate())
            .append("endDate", getEndDate())
            .append("trialDays", getTrialDays())
            .append("signDate", getSignDate())
            .append("contractStatus", getContractStatus())
            .append("remark", getRemark())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
